/*
 * @lc app=leetcode.cn id=119 lang=javascript
 *
 * [119] 杨辉三角 II
 */

// @lc code=start
/**
 * @param {number} rowIndex
 * @return {number[]}
 */
//  思路：公式法
//  杨辉三角表示二项式的系数 => 组合C(n,m) = n!/(m! * (n-m)!)
//  推出公式 C(n,m) = C(n, m-1) * (n - m + 1) / m

//  复杂度: O(n) O(1)

var getRow = function (rowIndex) {
    const row = new Array(rowIndex + 1).fill(0);
    row[0] = 1;
    for (let i = 1; i < rowIndex + 1; i++) {
        // 动态规划
        // row[0] = row[i] = 1
        // for (let j = i - 1; j >= 1; j--) {
        //     row[j] = row[j] + row[j - 1]
        // }

        // 公式法
        row[i] = row[i - 1] * (rowIndex - i + 1) / i;
    }
    return row;
};
// @lc code=end

console.log(getRow(3));